import axios from "axios"
import {storage} from "./common"
import {Message} from "element-ui"
// 获取配置文件baseURL
const baseURL = process.env.VUE_APP_REQUEST_BASE_URL

// 获取配置文件超时时间
const timeout = process.env.VUE_APP_REQUEST_TIME_OUT

// 创建一个axios实例
const instance = axios.create({
    baseURL: baseURL,
    timeout: timeout
})

// 获取存储的token数据
const token = storage().get('token')

// 如果token存在添加默认的请求头
if (token) {
    instance.defaults.headers.common['Authorization'] = token
}

// 设置请求拦截器
instance.interceptors.request.use(function (config) {
    //每一次发出请求前都先清除提示消息
    Message.closeAll()
    return config
}, function (error) {
    console.log(error)
    return Promise.reject(error)
})

// 设置响应拦截器
instance.interceptors.response.use(function (response) {
    //每一次收到请求前都先清除提示消息
    Message.closeAll()
    // 根据情况自定义
    if (response.data.code === 200) {
        return Promise.resolve(response.data)
    } else {
        return Promise.reject(response.data)
    }
}, function (error) {
    console.error(error)
    return Promise.reject({msg: "服务器数据请求失败，请稍候再试！", data: null, code: 0})
})


export default {
    install(vue) {
        vue.prototype.$api = instance
    }
}
